package com.example.backend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.backend.dto.RoleDTO;
import com.example.backend.entity.Role;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 角色服务接口
 */
public interface RoleService extends IService<Role> {
    
    /**
     * 获取用户角色列表
     */
    List<Role> getUserRoles(Long userId);

    @Transactional(rollbackFor = Exception.class)
    boolean assignUserRoles(Long userId, List<Long> roleIds);

    /**
     * 创建角色
     */
    void createRole(RoleDTO roleDTO);
    
    /**
     * 更新角色
     */
    void updateRole(RoleDTO roleDTO);
    
    /**
     * 删除角色
     */
    void deleteRole(Long roleId);
    
    /**
     * 更新角色权限
     */
    void updateRolePermissions(Long roleId, List<Long> permissionIds);
    
    /**
     * 获取角色权限ID列表
     */
    List<Long> getRolePermissionIds(Long roleId);
} 